# NameError(异常类型): name 'a' is not defined(异常描述信息)
'''
获取异常描述信息的格式:
try:
    可能会出现异常的代码
except 异常类型 as 变量名:
    print(变量名) 此时会输出异常信息
except 异常类型 as 变量名:
    print(变量名) 此时会输出异常信息
...

'''

# 方式一: except后只有一个异常类
try:
    print(a)
    print(1 + '2')
except NameError as e:
    # 使用print打印e就可以输出异常描述信息
    print(e)  # name 'a' is not defined
except TypeError as e:
    print(e)

# 思考: 为什么多种异常类都是用e作为变量, 会不会发生冲突???
# 因为同一个try...except...中只能存在一个异常,所以也就只能捕获一次异常,如果上变的e被赋值,则下边的e就不会被执行.

print('----------------------------')
# 方式二: except后有多个异常类

try:
    print(a)
    print(1 + '2')
except (NameError, TypeError) as e:
    print(e)

# 思考: 为什么这种方式中except后只有一个as e呢?会不会漏赋值呢?
# 因为同一个try...except...中只能存在一个异常,所以也就只能捕获一次异常,如果出现异常则e只能存放一种异常,不会漏赋值,也不会冲突.

